/*
 *  AbstractSection.h
 *  SoundController0002
 *
 *  Created by jiro on 11/10/03.
 *  Copyright 2011 jiro music. All rights reserved.
 *
 */

#pragma once

#include "../HarmonicSystem/HarmonicSystem.h"
#include "AbstractLine.h"

namespace sc
{
namespace system0039
{

	class ConcreteRegion;

	class AbstractRegion
	{
	public:

		enum Alignment
		{
			LeftAlignment,

			CenterAlignment,

			RightAlignment,
		};

	private:
	
		std::vector< AbstractLine > lines;

	public:

		void AddLine( const AbstractLine& line );
		
		void Clear();

		int  GetConcreteRegionCount() const;

		void GetConcreteRegion( int index, Alignment alignment, ConcreteRegion& region ) const;

		std::string ToString( int tabCount = 0 ) const;

	};

}
}
